<?php

include("../config.inc.php");
include("../util.php");	
include("../clases.php");
require_once("../FirePHPCore-0.3.2/lib/FirePHPCore/FirePHP.class.php");
session_start();

if(!$_SESSION["obj_sesion"]->compruebaAcceso("ADME")){		echo "<script language='javascript'>location.href='salir.php'</script>";
		die(); }
$_SESSION["cabecera_albaran_insertada"]=false;

switch($_REQUEST["action"]){

/*#######################################################################################################################################################*/
/*##################################################################  FORMULARIO  #######################################################################*/
/*#######################################################################################################################################################*/
		
	case 'form':{
		
		// Variable en la que introducimos todos los datos del albarán
		$vector=array();
		
		// Variable en la que almacenamos la accion a realizar
		$_action = "insertar";
		
		// Si existe $_REQUEST["n_expedicion"] el formulario se cagara en modo "modificar"
		if(isset($_REQUEST["n_expedicion"])){
			
			// La accion pasa a ser modificar
			$_action = "modificar";
			
			/*$vector contiene los datos del albarán cuyo id hemos recuperado*/
			$vector = consultaSimple("albaran_entrega","n_expedicion = ".$_REQUEST["n_expedicion"]." and fecha_baja is NULL");
			pasar_utf8_array($vector);
			
			/*$productos_modificacion es una matriz con los datos de los productos de dicho albarán(líneas de albarán)*/
			$productos_modificacion=consultaMultiple("lineas_albaran_entrega l, productos p","l.id_producto=p.id_producto and l.id_expedicion=".$vector["id_expedicion"]." AND l.fecha_baja IS NULL AND l.id_lote = 0","","l.id_expedicion, l.cantidad , p.nombre, p.unidades, p.id_producto, p.ean, p.unidades_palet, p.udsxcaja");
			pasar_utf8_array($productos_modificacion);
			
			/*$producto es una matriz que almacena los datos de todos los productos de la base de datos*/
			$productos_BD = consultaMultiple('productos');
			pasar_utf8_array($productos_BD);
			
			// Almacena los lotes
			$lotesAlbaran = consultaMultiple("lineas_albaran_entrega m, productos p, lotes lt, distribuidores d"," p.id_producto = m.id_producto and lt.id_lote = m.id_lote and d.id_distribuidor = lt.id_distribuidor and m.id_expedicion=".$vector["id_expedicion"]." and m.id_lote <> 0 and m.fecha_baja IS NULL","","lt.n_lote, lt.fecha_caducidad, d.nombre as distribuidor, p.nombre, m.cantidad");
			pasar_utf8_array($lotesAlbaran);
			
		}
		
		/* $producto es una matriz que almacena los datos de todos los productos de la base de datos*/
		$producto = consultaMultiple(' productos p left join lotes l on p.id_producto=l.id_producto  and p.trazabilidad=0','  p.fecha_baja is null and p.unidades > 0  ',"group by p.nombre having (l.cantidad=0 or l.cantidad is null)"," p.nombre as nombre, p.unidades as unidades, p.id_producto as id_producto2, l.*");
		pasar_utf8_array($producto);
		
		// $clientes con tiene todos los datos de los cliente que tengan la fecha de baja igual a NULL
		$clientes = consultaMultiple('cliente','fecha_baja IS NULL');
		pasar_utf8_array($cliente);
		
		/* $unidades = consultaSimple("productos","id_producto = ".$idStock,"","unidades"); pasar_utf8_array($unidades); */
		
		echo '
		<div id="scriptAutocomplete">
		<script type="text/javascript">  
		';
		
		if($_action=="insertar") // Si la acción es insertar oculto la cabecera de las lineas y la linea de inserción de producto
		{
			echo '$(document).ready(	
		
				function ocultarCabecera() { 
					$("#cabeceras").hide();
					$("#tabla_lineas_formulario").hide();
				}
			);';
		}
		
		echo '
		var prd = 0;';
		
		if($_action=="modificar"){echo 'var prd='.count($productos_modificacion);}	// Si la acción es modificar, la ultima linea tendrá la función de autocompletar
		echo '
		$(document).ready(

			function autocompletar() {  	
			 
			var productos = [';
			for($i=0;$i<count($producto);$i++){		// Cargo la variable que utilizará el autocomplete con la variable $producto
				if($i==0){
					echo '{"label":"'.utf8_decode($producto[$i]["nombre"]).'", "id":"'.$producto[$i]["id_producto2"].'",}';
				}
				else{
					echo  ', {"label":"'.utf8_decode($producto[$i]["nombre"]).'", "id":"'.$producto[$i]["id_producto2"].'",}';
				}
			}
			echo '];';
				
			// Función que al introducir un carácter sobre el campo que tiene la función autocompletar muestra un listado de los productos que contienen en su nombre dicho carácter
			echo '
													
				$("#producto_"+prd).autocomplete({  
				
				  source: productos,
				  select: function(event, ui){  
				  			pasarID(prd,ui.item.id);
							$("#id_producto").val(ui.item.id);
							$("#idproducto_"+prd).val(ui.item.id);
							llenarEAN(prd,ui.item.id);
							llenarUndxPalet(prd,ui.item.id);
							$("#idProducto_"+prd).val(ui.item.id);
							
							if (document.getElementById(\'unidades_\'+prd).value == "")
				  			{
				  				//document.getElementById(\'contenedor\').innerHTML = "<font color=\'red\'><b>Introduzca las unidades del producto</b></font>";
				  				
				  			}else{
				  					
									guardarConIndice("insertarLinea",prd);
									addField();
									pasarID(prd,ui.item.id); 					
				  					
				  			}  		
				  		}
				});';
			
			// Función que muestra un pequeño calendario en el que él usuario puede seleccionar la fecha
			echo ' 
			  			$("#campo_fecha").datepicker({
							showOn: "button",
      						buttonImage: "js/jquery/datepicker/images/calendar.gif",
      						buttonImageOnly: true,
      						changeYear: true,
      						numberOfMonths: 1,
							monthNames: ["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],
							monthNamesShort: ["Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic"],
							dayNamesMin: ["Do","Lu","Ma","Mi","Ju","Vi","S&aacute;"],
							dayNames: ["Domingo", "Lunes", "Martes", "Mi&eacute;rcoles", "Jueves", "Viernes", "S&aacute;bado"],
							firstDay: 1,
							dateFormat: "dd/mm/yy",
							onSelect: function(dateText,inst){
										$("#fecha").val(dateText);';
										if($_action=="insertar"){
											echo 'datosPrincipales();';
										}
										else{
											echo 'modificarFechaAlbaran();';
										}
										echo '
									  }									
						});				
      					
		});
		
		</script>
		</div>';
		
		
		//Aqui empieza la interface de usuario de la pagina
		echo '<div style="width: 783px;"> 
				<fieldset style="width:767px;">
				<legend class="txt_normal"><b>Datos Albar&aacute;n Entrega</b></legend>
				<form id="formularioEntrega" name="formularioEntrega">';
				
				// Variables ocultas que guardan datos que son necesarios en determinados casos
		echo '
				<input type="hidden" name="id_expedicion" id="id_expedicion" value="'.$vector["id_expedicion"].'">
				<input type="hidden" value="" id="id_producto" name="id_producto">	
				<input type="hidden" value="" id="n_expedicionOK" name="n_expedicionOK">	
				<input type="hidden" name="fecha" id="fecha" value="'.$vector["fecha"].'">
				<input type="hidden" name="tipoAlbaran" id="tipoAlbaran" value="'.$_REQUEST["tipoAlbaran"].'">
				<input type="hidden" id="accion" name="accion" value="'.$_action.'">
				<table width="792px" border="0" cellspacing="0" cellpadding="15" style="width: 768px;">
				  <tr>
					<td style="padding-right: 0px; padding-left: 0px;"><table style="width: 760px;" height="107" border="0" cellpadding="0" cellspacing="0">
						<tr>
						  <td colspan="3" class="filanormal"><span class="titulo_portada"> Albar&aacute;n de Entrega </span></td>
						</tr>    
							<tr>
						  <td colspan="3">&nbsp; </td>
						</tr>
						<tr>
						  <td width="221" class="titulo_inicio">N&#176; de Expedici&oacute;n</td>
						  <td width="204">&nbsp;</td>
						  <td width="501">&nbsp;</td>
						</tr>
						<tr>
						  <td>
						  <input '; if($_action=="modificar"){echo ' readonly="readonly"';} echo ' name="expedicion" maxlength="12" type="text" class="cabecera_agenda_finde" id="expedicion" value="'.$vector["n_expedicion"].'" onchange="datosPrincipales();" onKeyUp="expedicionUsada();" onKeyPress="return comprobar_solonumeros(event);"/><div id="contenedor_expedicion" name="contenedor_expedicion"></div></td>
						  <td>&nbsp;</td>
						  <td rowspan="3" style="float: right; width: 298px;">
						  <select '; if($_action=="modificar"){echo ' disabled="disabled"';} echo ' name="cliente" class="titulo_inicio" id="cliente" onChange="cargarCliente(), datosPrincipales();">
            					<option value="0">Seleccione un cliente de la lista</option>';
            					// En este bucle se introducen los cliente que se mostraran en el combobox
								for($z=0; $z<count($clientes);$z++){
									if($clientes[$z]["id_cliente"]==$vector["id_cliente"]){
										echo '<option selected="selected" value="'.$clientes[$z]["id_cliente"].'">'.$clientes[$z]["nombre"].'</option>';
									}
									else{
											echo '<option value="'.$clientes[$z]["id_cliente"].'">'.$clientes[$z]["nombre"].'</option>';
										}
							}
						echo '</select>	
							</td>
						</tr>
						<tr>
						  <td class="titulo_inicio" valign="top">Fecha<br><div id="contenido_fecha" style="width: 210px;" ><input  name="campo_fecha" type="text" class="cabecera_agenda_finde" id="campo_fecha" value="'.$vector["fecha"].'" readonly="readonly" />
						  
						  <br><br>
						  
						  <input type="button" id="boton_lote" value="Lote" class="lote" onclick="llamarFormularioLote();" style="'; if($_action=="insertar"){echo ' visibility:hidden; ';} echo '">
						  						  
						  </td>
						  <td width="260px" style="width: 180000px;">&nbsp;</td>
						   <td>';
						   
						   //Si la accion es modificar, se hace una consulta para recoger los datos del cliente de dicho albaran en funcion de su id y se llena un fieldset con dichos datos
						   if($_action=="modificar"){
							   $cliente = consultaSimple("cliente d join proveedores p on d.id_proveedor=p.id_proveedor","id_cliente=".$vector["id_cliente"]." and d.fecha_baja is null","","d.id_cliente id, d.nombre, d.cif, d.direccion, d.localidad, d.codigo_postal, d.provincia, d.telefono, d.email, p.nombre proveedor");
								echo '<fieldset id="fieldsetCliente" name="fieldsetCliente" style="width: 280px; margin-right: 0px; visibility:visible;"><div style="visibility:visible;"  id="DatosCliente" name="DatosCliente">
								<b>Nombre: </b>'.$cliente["nombre"].'<br>
							   <b>CIF: </b>'.$cliente["cif"].'<br>
							   <b>Direcci&oacute;n: </b>'.$cliente["direccion"].'<br>
							   <b>Localidad: </b>'.$cliente["localidad"].'<br>
							   <b> C.Postal: </b>'.$cliente["codigo_postal"].'<br>
							   <b> Provincia: </b>'.$cliente["provincia"].'<br>
							   <b> Tel&eacute;fono: </b>'.$cliente["telefono"].'<br>
							   <b> Fax: </b>'.$cliente["fax"].'<br>
							   <b> E-mail: </b>'.$cliente["email"].'<br>
							   <b>Proveedor: </b>'.$cliente["proveedor"].'</div></fieldset>';					
						   }
						   else{ //Si la accion es insertar se crea un fieldset vacio y oculto
							   echo '<fieldset id="fieldsetCliente" name="fieldsetCliente" style="width: 280px; margin-right: 0px; visibility:hidden;"><div style="visibility:hidden;"  id="DatosCliente" name="DatosCliente"></div></fieldset>';
						   }
						   echo '</td>
						</tr>

					  </table></td>
				  </tr>
					
					<tr>
						<table id="listadoLotesAlbaran">';
						
						// En caso de que la acción sea modificar, muestra un listado de los lotes pertenecientes al albarán 
						if($_action=="modificar")
						{
							for ($i = 0; $i < count($lotesAlbaran); $i++)
							{
								echo '
								<tr id="lineaLote_'.$lotesAlbaran[$i]["n_lote"].'">
									<td>
										<fieldset style="height:135px; width: 738px;" class="cabecera_agenda_finde">
										<legend>Datos Lote '.$lotesAlbaran[$i]["nombre"].'</legend>
										<form>
										<center>
											<table style="width: 738px;">
											
												<tr>
													<td>
														<center><label>N&#176; Lote</label></center>
													</td>
													
													<td>
														<center><label>Fecha Caducidad</label></center>
													</td>
													
													<td>
														<center><label>Distribuidor</label></center>
													</td>
												</tr>
												
												<tr>
													<td>
														<center><input readonly="readonly" type="text" class="autocompletar" value="'.$lotesAlbaran[$i]["n_lote"].'" id="input_n_lote_'.$lotesAlbaran[$i]["n_lote"].'" name="n_lote" maxlength="18" onkeypress="return comprobar_solonumeros(event);">	</center>
													</td>
													
													<td>
														<center><input disabled="true" value="'.$lotesAlbaran[$i]["fecha_caducidad"].'" type="text" class="autocompletar" id="fechaLote_'.$lotesAlbaran[$i]["n_lote"].'" name="fechaLote"></center>
													</td>
													
													<td>
														<center><input disabled="true" type="text" value="'.$lotesAlbaran[$i]["distribuidor"].'" id="distribuidor_'.$lotesAlbaran[$i]["n_lote"].'" class="autocompletar"> </center>
													</td>
												</tr>
												
												<tr></tr>
												
												<tr class="titulo_inicio">
													<td colspan="3">
														<center><label style="margin-left: 150px;">Producto</label><label style="margin-left: 165px;">Cajas</label></center>
													</td>
												</tr>
												
												<tr>
													<td colspan="3"><center><input disabled="true" type="text"  value="'.$lotesAlbaran[$i]["nombre"].'" id="productoLote_'.$lotesAlbaran[$i]["n_lote"].'" name="productoLote" class="autocompletar" style="width:360px;">&nbsp;<input type="text" value="'.$lotesAlbaran[$i]["cantidad"].'" id="unidadesLote_'.$lotesAlbaran[$i]["n_lote"].'" name="unidadesLote" class="autocompletar" style="width:70px;" onchange="modificarCantidadLote('.$lotesAlbaran[$i]["n_lote"].');" onkeypress="return comprobar_solonumeros(event);"></center>
													</td>
													
												</tr>
												
												<tr>
													<td>
													
													</td>
													
													<td style="width: 405px;text-align:center;">
														<div id="mensajeLineasLote_'.$lotesAlbaran[$i]["n_lote"].'" name="mensajeLineasLote_'.$lotesAlbaran[$i]["n_lote"].'" > </div>
													</td>
													
													<td style="text-align:right;">
														<img id="deleteImg_'.$lotesAlbaran[$i]["n_lote"].'" name="deleteImg_0" src="./albaranEntrega/icon/icon-trash.png" style="width: 24px; height: 21px; border-top-width: 0px; margin-top: 0px;" onclick="borrarLote('.$lotesAlbaran[$i]["n_lote"].');">
													</td>
													
												</tr>
											</table>
											</center>
											</form>
											</fieldset>
										</td>
									</tr>';
							}			
						
						}
						

				echo '</table>
					</tr>
						
  			  	  <table style="width: 759px; ';
				  if($_action=="insertar"){/*echo ' visibility:hidden; ' */;}					// Cabecera de las lines de producto
				  echo '" id="cabeceras">
  			  	  	<tr style="font-weight: bold; font-size=14px;" align="center" class="titulo_inicio">
				  		<td style="width: 94px;" > EAN </td>
  			  			<td style="width: 328px;"> Productos </td>
  			  			<td style="width: 52px;"> Und x Caja </td>
  			  			<td style="width: 62px;" align="center" > Stock/Cajas </td>
  			  			<td style="width: 52px;"> Cajas </td>
  			  			<td style="width: 64px;">'; echo wordwrap("Palets a Entregar", 8, "\n", true); echo '</td>
  			  			<td style="width: 8px;"> &nbsp; </td>
  			  		</tr>
  			  	  </table>
  			  	  
				  <tr>
					<td><table id="tabla_lineas_formulario" name="tabla_lineas_formulario" style="width: 759px; ';
				  if($_action=="insertar"){ /*echo ' visibility:hidden; ' */;}											// Tabla donde se insertan las lines del albarán
				  echo '" border="0" cellspacing="0" cellpadding="0">
					';
					  /*Si el formulario es de inserción, se muestra una única línea */
					  if($_action == "insertar"){
					  
						/*Aquí empieza cada línea de inserción y su respectiva columna del autocompletar de productos*/
						echo '<tr id="linea_insercion_0" name="linea_insercion_0"> 
						<input type="hidden" id="idProducto_0" name="idProducto_0">
						
									<td style="width: 108px;"><input maxlength="13" type="text" id="ean_0" name="ean_0" onchange="obtenerProducto(0);" class="autocompletar" onKeyPress="return comprobar_solonumeros(event);" style="width:105px; height:22px; padding-top:0px; padding-bottom:0px; border-bottom-width:1px; border-top-width:1px; margin-top:0px; padding-left: 0px;"></td>
									
									<td class="autocompletar" style="width: 315px;"> <input style="width: 365px; height: 22px; padding-left: 0px; padding-top: 0px; padding-bottom: 0px; margin-bottom: 0px;" type="text" id="producto_0" name="producto_0" class="autocompletar"> </td>';
						
						/*Aquí empieza la columna de unidades de cada línea de inserción*/
							echo '<td  style="width: 65px;" align="center" class="autocompletar"><input type="text" class="autocompletar" disabled="true" style="text-align:center; height: 22px; padding-left: 0px; padding-top: 0px; padding-bottom: 0px; width:62px;" id="undxcaja_0" title="Unidades x Caja" />
								  </td>	
								  			
							<td style="width: 65px;" align="center" class="autocompletar"><input type="text" class="autocompletar" disabled="true" style="text-align:center; width:66px; height: 22px; padding-left: 0px; padding-top: 0px; padding-bottom: 0px;" id="stock_0" title="Stock" />
								  </td>
								  
								  <td style="width: 75px;">
						  			<input style="text-align:center; height: 22px; padding-left: 0px; padding-top: 0px; padding-bottom: 0px;" name="unidades_0" type="text" class="autocompletar" id="unidades_0" size="8" maxlength="5" title="Unidades" onChange="actualizarLinea(0);" onKeyPress="return comprobar_solonumeros_2(event);"/> </td>
						  			
						  		    <td width="60" class="autocompletar" align="center"><input type="text" class="autocompletar" disabled="true" style="text-align:center; height: 22px; padding-left: 0px; padding-top: 0px; padding-bottom: 0px; width:66px;" id="palet_0" title="Palets"/></td>
								  <td> <img id="deleteImg_0" name="deleteImg_0" src="./albaranEntrega/icon/icon-trash.png" style="width: 24px; height: 21px; border-top-width: 0px; margin-top: 0px;" onclick="delRow(0);"> </td>
						    </tr>';					    
					  
					  }
					  /*Si el formulario es de modificación, se cargan las líneas de dicho albarán*/
					  else{
						  for($j=0;$j<count($productos_modificacion);$j++){
							  /*Aquí empieza cada línea de modificación*/
							  echo '<tr id="linea_insercion_'.$j.'" name="linea_insercion_'.$j.'">
										<input type="hidden" id="idProducto_'.$j.'" name="idProducto_'.$j.'" value="'.$productos_modificacion[$j]["id_producto"].'">
										
										<td style="width: 108px;"><input '; 
										
										if ($j < count($productos_modificacion)){echo 'disabled="true";';}
																				
										echo ' maxlength="13" disabled="true" type="text" id="ean_'.$j.'"  name="ean_'.$j.'" class="autocompletar" onKeyPress="return comprobar_solonumeros(event);" style="width:105px; height:22px; padding-top:0px; padding-bottom:0px; border-bottom-width:1px; border-top-width:1px; margin-top:0px; padding-left: 0px;" value="'.$productos_modificacion[$j]["ean"].'"></td>
										
										<td class="autocompletar" style="width: 315px;"> <input '; 
										
										if ($productos_modificacion[$j]["nombre"]!=""){echo 'disabled="true";';}
																				
										echo ' style="width: 365px; height: 22px; padding-left: 0px; padding-top: 0px; padding-bottom: 0px; margin-bottom: 0px;" type="text" id="producto_'.$j.'" name="producto_'.$j.'" class="autocompletar" value="'.$productos_modificacion[$j]["nombre"].'"> </td>
										
										<td  style="width: 65px;" align="center" class="autocompletar"><input type="text" class="autocompletar" disabled="true" style="text-align:center; height: 22px; padding-left: 0px; padding-top: 0px; padding-bottom: 0px; width:62px;" id="undxcaja_'.$j.'" title="Unidades x Caja" value="'.$productos_modificacion[$j]["udsxcaja"].'" />
								  </td>	
										
										<td  style="width: 65px;" align="center" class="autocompletar"><input type="text" class="autocompletar" disabled="true" style="text-align:center; width:66px; height: 22px; padding-left: 0px; padding-top: 0px; padding-bottom: 0px;" id="stock_'.$j.'" title="Stock" value="'.$productos_modificacion[$j]["unidades"].'" /> </td>
										
								 		<td style="width: 75px;"><input style="text-align:center;width:66px;" name="unidades_'.$j.'" type="text" class="autocompletar" id="unidades_'.$j.'" maxlength="5" title="Unidades" onChange="actualizarLinea('.$j.','.count($productos_modificacion).');" onKeyPress="return comprobar_solonumeros_2(event);" value="'.$productos_modificacion[$j]["cantidad"].'"/> </td>
																		 		
						  		    	<td width="60" class="autocompletar" align="center"><input type="text" class="autocompletar" disabled="true" style="text-align:center; height: 22px; padding-left: 0px; padding-top: 0px; padding-bottom: 0px; width:66px;" id="palet_'.$j.'" title="Palets" value="';
									if($productos_modificacion[$j]["cantidad"]>0){
										echo (round(($productos_modificacion[$j]["cantidad"]/$productos_modificacion[$j]["unidades_palet"])*100)/100); 
									}
										echo '"/> </td>
										
								  		<td> <img id="deleteImg_'.$j.'" name="deleteImg_'.$j.'" src="./albaranEntrega/icon/icon-trash.png" style="width: 24px; height: 21px; border-top-width: 0px; margin-top: 0px;" onclick="delRow(0);"> </td>

						    	   </tr>';
						  }
						  
						  //La nueva línea en caso de inserción
									  echo '<tr id="linea_insercion_'.count($productos_modificacion).'" name="linea_insercion_'.count($productos_modificacion).'"> 
									<input type="hidden" id="idProducto_'.count($productos_modificacion).'" name="idProducto_'.count($productos_modificacion).'">
						
									<td style="width: 108px;"><input maxlength="13" type="text" id="ean_'.count($productos_modificacion).'" name="ean_'.count($productos_modificacion).'" onchange="obtenerProducto('.count($productos_modificacion).');" class="autocompletar" onKeyPress="return comprobar_solonumeros(event);" style="width:105px; height:22px; padding-top:0px; padding-bottom:0px; border-bottom-width:1px; border-top-width:1px; margin-top:0px; padding-left: 0px;"></td>
									
									<td class="autocompletar" style="width: 315px;"> <input style="width: 365px; height: 22px; padding-left: 0px; padding-top: 0px; padding-bottom: 0px; margin-bottom: 0px;" type="text" id="producto_'.count($productos_modificacion).'" name="producto_'.count($productos_modificacion).'" class="autocompletar"> </td><td  style="width: 65px;" align="center" class="autocompletar"><input type="text" class="autocompletar" disabled="true" style="text-align:center; height: 22px; padding-left: 0px; padding-top: 0px; padding-bottom: 0px; width:62px;" id="undxcaja_'.count($productos_modificacion).'" title="Unidades x Caja" />
								  </td>	
								  			
							<td style="width: 65px;" align="center" class="autocompletar"><input type="text" class="autocompletar" disabled="true" style="text-align:center; width:66px; height: 22px; padding-left: 0px; padding-top: 0px; padding-bottom: 0px;" id="stock_'.count($productos_modificacion).'" title="Stock" />
								  </td>
								  
								  <td style="width: 75px;">
						  			<input style="text-align:center; height: 20px; width: 66px;" name="unidades_'.count($productos_modificacion).'" type="text" class="autocompletar" id="unidades_'.count($productos_modificacion).'" maxlength="5" title="Unidades" onChange="actualizarLinea('.count($productos_modificacion).','.count($productos_modificacion).');" onKeyPress="return comprobar_solonumeros_2(event);"/> </td>
						  			
						  		    <td width="60" class="autocompletar" align="center"><input type="text" class="autocompletar" disabled="true" style="text-align:center; height: 22px; padding-left: 0px; padding-top: 0px; padding-bottom: 0px; width:66px;" id="palet_'.count($productos_modificacion).'" title="Palets"/></td>
								  <td> <img id="deleteImg_'.count($productos_modificacion).'" name="deleteImg_'.count($productos_modificacion).'" src="./albaranEntrega/icon/icon-trash.png" style="width: 24px; height: 21px; border-top-width: 0px; margin-top: 0px;" onclick="delRow('.count($productos_modificacion).');"> </td>
						    </tr>';	
						  
					  }
					  echo '</table></td>
				  </tr>
				  <br><br>
				  <tr>
					<td>
					<center>';
					for($i=0;$i<count($productos_modificacion);$i++){
						echo '<input type="hidden" id="producto_modificacion_id_'.$i.'" name="producto_modificacion_id_'.$i.'" value="'.$productos_modificacion[$i]["id_producto"].'">';
					}
					echo '	
					
					<label class="titulo_inicio" style="font-size:14px;">Observaciones:</label> <br><textarea maxlength="500" onkeyup="restarLimite();" onchange="insertarObservaciones();" class="cabecera_agenda_finde" id="observaciones" style=" height: 100px; max-height: 100px; max-width: 763px; text-align: justify; width: 763px; min-height: 100px; min-width: 763px;">'; echo utf8_decode($vector["observaciones"]); echo '</textarea></center> <div id="maxCaracteres" style="text-align:right; width: 763px;color:red;">'; echo 500 - strlen(utf8_decode($vector["observaciones"])); echo '</div> <center>		
<br>							

					<input type="button" value="&nbsp;Guardar" id="guardar" style="width:100px;" class="aceptar" onclick="opcionesAceptar(\''.$_action.'\');" >
					<input type="button" value="&nbsp;Imprimir" id="imprimir" style="width:100px;" class="aceptar" onclick="imprimirPDF('.$vector["n_expedicion"].');" >
					<input type="button" value="Imprimir ean" id="imprimir" style="width:120px;" class="aceptar" onclick="imprimireanPDF('.$vector["n_expedicion"].');" >';
				
					if($_action == "modificar")
					{
						echo '<input type="button" value="Volver" id="volver" style="width:100px;" class="volver" onclick="volver_atras();" >';
					}
				
				echo '				
				 <br><div id="contenedor" name="contenedor"></div><br> </center>
					</td>
				  </tr>
				</table>
				</form>
				</fieldset>
				</div>
				';
				
		break;
	};
	
	
	// Envia los datos del producto
	case 'obtenerProducto':{
				
		$codigoEan=$_REQUEST["ean"];
		$result=consultaSimple("productos","ean=".$codigoEan);
		$resultado=array((string)$result["id_producto"],(string)$result["nombre"],(string)$result["unidades"], (string)$result["udsxcaja"]);
		$O=implode("-",$resultado);
		die($O);
	};
	
	
	// Rellamada a la función de los autocomplete
	case 'reAutocompletar':{
		
		/* $producto es una matriz que almacena los datos de todos los productos de la base de datos*/
		$producto = consultaMultiple(' productos p left join lotes l on p.id_producto=l.id_producto  and p.trazabilidad=0','  p.fecha_baja is null and p.unidades > 0  ',"group by p.nombre having (l.cantidad=0 or l.cantidad is null)"," p.nombre as nombre, p.unidades as unidades, p.id_producto as id_producto2, l.*");
		pasar_utf8_array($producto);
		
		echo '  
		<script type="text/javascript">		
		var prd = '.($_REQUEST["prd"]).';
		$(document).ready(
			
			function autocompletar() {  
			 			 
			var productos = [';
			for($i=0;$i<count($producto);$i++){
				if($i==0){
					echo '{"label":"'.utf8_decode($producto[$i]["nombre"]).'", "id":"'.$producto[$i]["id_producto2"].'",}';
				}
				else{
					echo  ', {"label":"'.utf8_decode($producto[$i]["nombre"]).'", "id":"'.$producto[$i]["id_producto2"].'",}';
				}
			}
			echo '];					
								
				$("#producto_"+prd).autocomplete({  
				  source: productos,
				  select: function(event, ui){
				  			pasarID(prd,ui.item.id);
							llenarEAN(prd,ui.item.id);
							llenarPalets(prd,ui.item.id);
							$("#id_producto").val(ui.item.id);
							$("#idProducto_"+prd).val(ui.item.id);
							llenarUndxPalet(prd,ui.item.id);
				  			if (document.getElementById(\'unidades_\'+prd).value == "")
				  			{
				  				//document.getElementById(\'contenedor\').innerHTML = "<font color=\'red\'><b>Introduzca las unidades del producto</b></font>";				  				
				  			}
							else{								
								if(prd==0){
									guardar("insertarPrimeraLinea");
								}
								else{
									guardarConIndice("insertarLinea",prd);
								}
								addField();
								pasarID(prd,ui.item.id);				  					

				  			}  		  		
				  				
				  		}
				}); 
			  			$("#campo_fecha").datepicker({
							
							showOn: "button",
      						buttonImage: "js/jquery/datepicker/images/calendar.gif",
      						buttonImageOnly: true,
      						changeYear: true,
      						numberOfMonths: 1,
							monthNames: ["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],
							monthNamesShort: ["Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic"],
							dayNamesMin: ["Do","Lu","Ma","Mi","Ju","Vi","S&aacute;"],
							dayNames: ["Domingo", "Lunes", "Martes", "Mi&eacute;rcoles", "Jueves", "Viernes", "S&aacute;bado"],
							firstDay: 1,
							dateFormat: "dd/mm/yy",
							onSelect: function(dateText,inst){
										$("#fecha").val(dateText);
										datosPrincipales();
									  }
						});				
      					
		});
		
		$(document).ready(function(){
			if(document.getElementById("contenedor").innerHTML != ""){
				$("#stock_0").html(" ");
				$("#palet_0").val("");
				setTimeout(function(){document.getElementById("contenedor").innerHTML = ""},5000);
			}
		});	
		
		</script>';
		
		die();
	};
	
	
	// Carga el stock del product seleccionado
	case 'recogerStock':{
		$stock=array();
		$stock=consultaSimple("productos","id_producto=".$_REQUEST["idStock"]);
		die($stock["unidades"]);
	};
	
	
	// Carga los datos del cliente seleccionado
	case 'datosCliente':{
		
		$nombre = array();
		
		// Varibale que almacena todos los datos del cliente seleccionado
		$nombre = consultasimple("cliente d join proveedores p on d.id_proveedor=p.id_proveedor","id_cliente=".$_REQUEST["idCliente"]." and d.fecha_baja is null","","d.id_cliente id, d.nombre, d.cif, d.direccion, d.localidad, d.codigo_postal, d.provincia, d.telefono, d.email, p.nombre proveedor");
				
		$datos = '<b>Id: </b>'.$nombre["nombre"].'<br>
						   <b>CIF: </b>'.$nombre["cif"].'<br>
						   <b>Direcci&oacute;n: </b>'.$nombre["direccion"].'<br>
						   <b>Localidad: </b>'.$nombre["localidad"].'<br>
						   <b> C.Postal: </b>'.$nombre["codigo_postal"].'<br>
						   <b> Provincia: </b>'.$nombre["provincia"].'<br>
						   <b> Tel&eacute;fono: </b>'.$nombre["telefono"].'<br>
						   <b> E-mail: </b>'.$nombre["email"].'<br>
						   <b>Proveedor: </b>'.$nombre["proveedor"];
		
		die($datos);	
		
	}
	
	// Carga el EAN del producto seleccionado
	case 'ean':{
		$ean=array();
		$ean=consultaSimple("productos","id_producto=".$_REQUEST["idEan"]);
		die($ean["ean"]);
	};
	
	
	// Carga las unidades por palets
	case 'undxpalet':{
		$ean=array();
		$ean=consultaSimple("productos","id_producto=".$_REQUEST["iduxp"]);
		die($ean["udsxcaja"]);
	};
	
	
	// Carga las unidades del palet
	case 'palet':{
		$palet=array();
		$palet=consultaSimple("productos","id_producto=".$_REQUEST["idPalet"]);
		die($palet["unidades_palet"]);
	}

/*#######################################################################################################################################################*/
/*########################################################## FIN DEL FORMULARIO  #######################################################################*/
/*#######################################################################################################################################################*/

//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
	
/*#######################################################################################################################################################*/
/*########################################################  FORMULARIOS DE LOTES  #######################################################################*/
/*#######################################################################################################################################################*/
	
	// Formulario modal en el que se selecciona el producto del cual se mostraran los lotes
	case 'seleccionadorProducto': {
				
		/*$producto es una matriz que almacena los datos de todos los productos de la base de datos*/
		$producto = consultaMultiple('productos p inner join lotes l on p.id_producto=l.id_producto','p.fecha_baja IS NULL',"group by p.nombre","p.*");
		pasar_utf8_array($producto);

		// Formulario que muestra dos campos. El primero es un campo en elq ue introduciremos el EAN y automáticamente introduciremos todos los datos del producto con ese EAN. El segundo es un campo autocompletar donde seleccionar
		// los productos que tengan un lote asociado.
		echo '
		<form id="form_producto" name="form_producto">
		<fieldset style="width: 583px; height: 123px;">
		<legend class="autocompletar"><b>Selecione el producto</b></legend>
		
			<table style="width: 581px; height: 112px;">
		
				<tr> 
					<td class="autocompletar"> 
						<center>
							Seleccione un producto:<br>  <input maxlength="13" onKeyUp="comprobarEANlote();" class="autocompletar" type="text" style="width:125px;" id="eanProductoLote" name="eanProductoLote"> <input class="autocompletar" type="text" style="width:420px;" id="selectorProductoLote" name="selectorProductoLote"> 
							<input  hidden="true" type="text" id="valorProducto" name="valorProducto">
						</center>
					</td>
				</tr>
									
				<tr>
					<td class="autocompletar">
						<center>
							<input type="button" value="&nbsp;Aceptar" id="aceptar" name="aceptar" class="aceptar" onClick="listadoLotesDeProducto();" />
							<input type="button" onclick="volver();" class="volver"  value="Volver" />
						</center>
					</td>
				</tr>
			
				<tr>
					<td style="text-align:center; height:12px"><div id="contenedor_lote_selector"></div></td>
				</tr>
			
			</table>
		
		</fieldset>
		</form>
		
		';
		
		// Funcion de autocompletar en este formulario
		echo '<script language="javascript">  
				
		$(document).ready(
			
			function inicial() {  
			 
			var productos = [';
			for($i=0;$i<count($producto);$i++){
				if($i==0){
					echo '{"label":"'.$producto[$i]["nombre"].'", "id":"'.$producto[$i]["id_producto"].'",}';
				}
				else{
					echo  ', {"label":"'.$producto[$i]["nombre"].'", "id":"'.$producto[$i]["id_producto"].'",}';
				}
			}
			echo '];
																
				$("#selectorProductoLote").autocomplete({  
				
				  source: productos,
				  select: function(event, ui){  
				  			$("#valorProducto").val(ui.item.id);
				  			llenarEANselectorLote(ui.item.id);							
				  		}
				});
      					
		});
				
		</script>';
	
		die();
	};
	
	
	// Formulario en el que muestra todos los lotes del producto seleccionado
	case 'form_lote':{
	
		/* Variable que almacena todos los albaranes que sean del producto seleccionado */
		$lote = consultaMultiple('lotes l, productos p , distribuidores ds','l.id_producto = p.id_producto and l.id_distribuidor = ds.id_distribuidor and l.cantidad <> 0 and l.fecha_baja is NULL AND p.id_producto = '.$_REQUEST["vProd"],"ORDER BY l.fecha_caducidad","l.n_lote, p.nombre, p.udsxcaja, l.cantidad, l.fecha_caducidad, ds.nombre as distribuidor");
		pasar_utf8_array($lote);
	
		echo '
				<form id="form_datos" style="margin:0px;">
				<fieldset style="width:650px;">
				<legend class="titulo_inicio" ><b>'.$lote[0]["nombre"].'</b></legend>
					
				<table>
					<tr style="text-align:center;text-decoration:underline" class="autocompletar">
				
							<td style="width: 52px; text-align:center;"> N Lote </td>
							<td style="width: 298px;align:center;"> Producto </td>
							<td style="width: 55px;align:center;"> Und/Caja </td> 
							<td style="width: 47px;align:center;"> Cajas </td> 
							<td style="width: 80px;align:center;"> Fecha caducidad </td> 
							<td style="width: 70px;align:center;"> Cajas a sacar </td>
												
					</tr>
				</table>
				
				<table border="0" width="650px" align="center" id="tabla_listado_lote">';
					
					for($j=0;$j<count($lote);$j++){
					
					echo '<tr id="lineas_lote_'.$j.'">
					
							 <td>
								<input readonly="readonly" class="autocompletar" value="'.$lote[$j]["n_lote"].'" style="width: 50px;padding-left: 0px;" type="text" id="nLote_'.$j.'" name="nLote_'.$j.'">
								<input disabled="true" class="autocompletar" value="'.$lote[$j]["nombre"].'" style="width: 320px;padding-left: 0px;" type="text" id="lote_'.$j.'" name="lote_'.$j.'">
								<input disabled="true" class="autocompletar" value="'.$lote[$j]["udsxcaja"].'" style="width: 50px;padding-left: 0px;" type="text" id="udsxcaja_'.$j.'" name="udsxcaja_'.$j.'">
								<input readonly="readonly" class="autocompletar" value="'.$lote[$j]["cantidad"].'" style="width: 50px;padding-left: 0px;" type="text" id="cantidad_'.$j.'" name="cantidad_'.$j.'">
								<input disabled="true" class="autocompletar" value="'.$lote[$j]["fecha_caducidad"].'" style="width: 75px;padding-left: 0px;" type="text" id="fechaCaducidad_'.$j.'" name="fechaCaducidad_'.$j.'"> 
								<input hidden="true" class="autocompletar" value="'.$lote[$j]["distribuidor"].'" style="width: 50px;padding-left: 0px;" type="text" id="idDistribuidor_'.$j.'" name="idDistribuidor_'.$j.'">
								<input class="autocompletar" maxlength="9" value="0" style="width: 70px;padding-left: 0px;" type="text" id="sacar_'.$j.'" name="sacar_'.$j.'" onKeyPress="return comprobar_solonumeros_con_punto(event);"   onchange="comprobarBlancos(), sumarTotal();"> 
							</td>
												
						  </tr>';
					}
					
				echo '
				</table>
				
				<table>
						<tr>
						
							<td style="padding-left: 517px;">
							
								<label class="autocompletar" style="font-size: 16px;">Total: &nbsp;</label>
								<input readonly="readonly" class="autocompletar" value="" style="width: 70px;padding-left: 0px;" type="text" id="total" > 
								
							</td>
						
						</tr>
									
						<tr>
						
							<td class="txt_normal_neg" style="text-align:center; " colspan="2">
							
								<div id="contenedor_lote"></div>
								
							</td>
							
						</tr>	
					
						<tr>
				
							<td>
							  <center>
							  
								<input type="button" value="&nbsp;Aceptar" id="aceptar" name="aceptar" class="aceptar" onClick="javascript:InsertarLotes();" />
								<input type="button" onclick="volver()" class="volver"  value="Volver" />
								
							  </center>
							</td>
				
						</tr>
						
				</table>
				</fieldset>
			   </form>';
		die();
	}
		
	// Obtiene los datos del producto con el EAN actual en el formulario de selección de producto lote
	case 'obtenerProductoLote':{
	
		$codigoEan=$_REQUEST["eanLote"];
		$result=consultaSimple("productos","ean=".$codigoEan." and trazabilidad = 1");
		$resultado=array((string)$result["id_producto"],(string)$result["nombre"]);
		$O=implode("-",$resultado);
		die($O);
	};
	
	// Obtiene el EAN del producto seleccionado en el formulario "seleccionadorProducto"
	case 'llenarEANlote':{
		
		$productoEAN = $_REQUEST["EANproductoLote"];
		$consulta = consultaSimple("productos","id_producto = ".$productoEAN." and trazabilidad = 1");
		
		echo $consulta["ean"];
		die();
	};
		

/*#######################################################################################################################################################*/
/*#################################################  FIN DE FORMULARIOS DE LOTES  #######################################################################*/
/*#######################################################################################################################################################*/

//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
		
/*###################################################################################################################################################################*/
/*################################################### OPERACIONES DE EDICION DE REGISTROS DEL ALBARAN ###############################################################*/
/*###################################################################################################################################################################*/
	
	
	// Inserta los datos principales del albaran (Nº EXPEDICION, FECHA Y CLIENTE)
	case 'insertarCabecera':{
		
		// Obtiene los datos principales del albaran (Nº EXPEDICION, FECHA Y CLIENTE)
		$numeroExpedicion = $_REQUEST["numeroExpedicionAlbaran"];
		$clienteAlbaran = $_REQUEST["clienteAlbaran"];
		$fechaAlbaran = $_REQUEST["fechaAlbaran"];
		
		// Comprobaciones que el numero de expedición no sea menor o igual que cero o que no este en blanco			
		if($numeroExpedicion<=0 || $numeroExpedicion==""){die("expedicion");}
		
		// Comprobamos si el cliente no esta seleccionado
		if($clienteAlbaran==0){die("cliente");}
		
		// Comprobamos si la fecha no esta introducida
		if($fechaAlbaran==""){die("fecha");}
		
		// Consulta para averiguar si existe un albaran con ese mismo nº de expedición
		$expedicionUsada=array();
		$expedicionUsada=consultaMultiple("albaran_entrega", "fecha_baja IS NULL and n_expedicion=".$numeroExpedicion);	
		if(count($expedicionUsada) > 0){die("expedicion_usada");}		
		
		// Obtenemos el siguiente Id
		$mayor1=maxid("albaran_recogida","id_expedicion");
		$mayor2=maxid("albaran_entrega","id_expedicion");
	
		if($mayor1>$mayor2){
			$id_expedicion = $mayor1;
		}
		else{
			$id_expedicion = $mayor2;
		}
		
		// Introducimos los datos en el albarán de entrega
		$albaran = array();
		$albaran["id_expedicion"] = $id_expedicion;
		$albaran["n_expedicion"] = $numeroExpedicion;
		$albaran["fecha"] = fechaToMysql($fechaAlbaran);
		$albaran["id_cliente"] = $clienteAlbaran;	
		insertaBD("albaran_entrega",$albaran);
		
		echo $id_expedicion;
		
		die();
	};
	
	
	// Comprueba que el numero de expedicion no se repita
	case 'consultaExpedicionUsada': {
		
		// Obtenemos el numero de expedicion introducido
		$expedicionUsada = $_REQUEST["expUsada"];
		
		// Comprobamos que no hay ningún albarán de entrega con ese numero de expedición
		$expedicionesEntrega=array();
		$expedicionesEntrega=consultaMultiple("albaran_entrega", "fecha_baja IS NULL and n_expedicion=".$expedicionUsada);
		
		// Si devuelve una línea o mas significa que ya existe un albarán con ese numero de expedición
		if(count($expedicionesEntrega)>0)
		{
			die("expedicion_usada");
		}
		
		// Comprobamos que no este en blanco
		if($expedicionUsada == ""){ die("blanco");}
		
		die("OK");
	};
		
		
	// Insertar linea de albaran
	case 'insertarLinea':{
		
		//Recogemos el índice del producto a insertar
		$indice=$_REQUEST["indice"];
		$id_expedicion = $_REQUEST["idex"];

		//Comprobamos que no haya campos vacíos que puedan ocasionar error		
		if($_REQUEST["id_producto"]<1){die("producto");}
		
		//Comprobamos que las unidades estén introducidas o que no sean menores o iguales que cero
		if( str_replace(",",".",(float)$_REQUEST["unidades_".$indice]) == "" ||  str_replace(",",".",(float)$_REQUEST["unidades_".$indice]) <= 0){die("unidades");}
		
		//Comprobamos que la cantidad requerida no sobrepase las existencias
		$unidadesBD=consultaSimple("productos","id_producto=".$_REQUEST["id_producto"]);
		if($unidadesBD["unidades"] < str_replace(",",".",(float)$_REQUEST["unidades_".$indice])){die("agotado");}
		
		$vector = array();
		$vector2=array();
		
		//Comprobamos si este producto ya se encuentra en el albarán, si es así, se procede a modificar su cantidad en vez de insertar el mismo producto
		$existencia=consultaSimple("lineas_albaran_entrega","id_expedicion=".$id_expedicion." AND id_producto=".$_REQUEST["id_producto"]);
		
		if((count($existencia))>0){
		
			//Se aumenta la cantidad de la linea de albarán existente en caso de que el producto ya exista en el albarán y no esté dado de baja lógica
			if($existencia["fecha_baja"]==NULL){
				$vector["cantidad"]= (float)$existencia["cantidad"] +  str_replace(",",".",(float)$_REQUEST["unidades_".$indice]);
			}
			//Si el producto estaba dado de baja lógica, se le vuelve a dar de alta y se le introduce la cantidad especificada por el usuario
			else{
				$vector["fecha_baja"] = NULL;
				$vector["cantidad"] =  str_replace(",",".",(float)$_REQUEST["unidades_".$indice]);
			}			
			//Se procede a modificar el registro existente con los nuevos datos			
			modificaBD("lineas_albaran_entrega",$vector,"id_producto=".$_REQUEST["id_producto"]." AND id_expedicion=".$id_expedicion);	
					
		}
		else{
			//Si la línea de albarán no existe, se procede a su inserción
			$vector["id_expedicion"] = $id_expedicion;
			$vector["id_producto"] = $_REQUEST["id_producto"];
			$vector["cantidad"] = str_replace(",",".",(float)$_REQUEST["unidades_".$indice]);
			insertaBD("lineas_albaran_entrega",$vector);
		}

		//Se reducen las correspondientes unidades en el stock de los productos		
		$vector2["unidades"] = (float)$unidadesBD["unidades"] -  str_replace(",",".",(float)$_REQUEST["unidades_".$indice]);
		modificaBD("productos",$vector2,"id_producto=".$_REQUEST["id_producto"]);
		
		die("OK");		
		
	};


	// Modificar linea de albaran
	case 'modificarLinea':{
				
		//Cogemos los datos de las líneas del albarán de modificación
		$productos_modificacion=consultaMultiple("lineas_albaran_entrega","id_expedicion=".$_REQUEST["id_expedicion"]." AND fecha_baja IS NULL");
		pasar_utf8_array($productos_modificacion);

		//Recogemos el índice del producto a modificar
		$indice=$_REQUEST["indice"];		
		
		//Recogemos el índice de la expedición
		$id_expedicion = $_REQUEST["id_expedicion"];
		
		//Comprobamos que no haya campos vacíos que puedan ocasionar error		
		if($_REQUEST["idProducto_".$indice]<1){die("producto");}
		
		//Comprobamos que las unidades estén introducidas o que no sean menores o iguales que cero
		if((float)str_replace(",",".",$_REQUEST["unidades_".$indice]) == "" || (float)str_replace(",",".",$_REQUEST["unidades_".$indice]) <= 0){die("unidades");}	
		
		//Comprobamos que la cantidad requerida no sobrepase las existencias
		$unidadesBD=consultaSimple("productos","id_producto=".$_REQUEST["idProducto_".$indice]);
		if($unidadesBD["unidades"] < (float)str_replace(",",".",$_REQUEST["unidades_".$indice])){die("agotado");}	
		
		$vector=array();
		$vector2=array();
		$vector3=array();
		
		//Comprobamos si este producto ya se encuentra en el albarán, si es así, se procede a modificar su cantidad en vez de a        	insertar el mismo producto
		$existencia=consultaSimple("lineas_albaran_entrega","id_expedicion=".$id_expedicion." AND id_producto = ".$_REQUEST["idProducto_".$indice]);
		
		// Comprueba que la unidad introducida sea mayor a que había
		if (str_replace(",",".",(float)$_REQUEST["unidades_".$indice]) > $existencia["cantidad"])
		{
			
			$vector3["unidades"]=(float)$unidadesBD["unidades"] - (str_replace(",",".",(float)$_REQUEST["unidades_".$indice]) - (float)$existencia["cantidad"]);
			modificaBD("productos",$vector3,"id_producto=".$_REQUEST["idProducto_".$indice]);
			
		// Comprueba que la unidad introducida sea menor a que había
		}else if (str_replace(",",".",(float)$_REQUEST["unidades_".$indice]) < $existencia["cantidad"]){
	
					$vector3["unidades"]=(float)$unidadesBD["unidades"] + ((float)$existencia["cantidad"] - str_replace(",",".",(float)$_REQUEST["unidades_".$indice]));
					modificaBD("productos",$vector3,"id_producto=".$_REQUEST["idProducto_".$indice]);	
								
				}
		
		//Comprobamos a través del índice del producto si es un producto ya existente que hay que modificar o si es un nuevo producto que hay que insertar en la base de datos
		if($indice<count($productos_modificacion)){
			if((count($existencia))>0){				
				//Si el producto nuevo ya existe, se incrementa la cantidad del producto existente y se borra virtualmente el registro modificado
				if($existencia["fecha_baja"]==NULL){
					$vector["cantidad"] = str_replace(",",".",(float)$_REQUEST["unidades_".$indice]);					
				}
				//Si el producto estaba dado de baja lógica, se le vuelve a dar de alta y se le introduce la cantidad especificada por el usuario, además de borrar virtualmente el antiguo registro que acabamos de modificar
				else{
					$vector["fecha_baja"]=NULL;
					$vector["cantidad"] = str_replace(",",".",(float)$_REQUEST["unidades_".$indice]);
				}
				modificaBD("lineas_albaran_entrega",$vector,"id_producto=".$_REQUEST["idProducto_".$indice]." AND id_expedicion=".$id_expedicion);	
			}		
		}
		else{			
			if((count($existencia))>0){
				//Se aumenta la cantidad de la linea de albarán existente en caso de que el producto ya exista en el albarán y no esté dado de baja lógica
				if($existencia["fecha_baja"]==NULL){
					$vector["cantidad"]=(float)$existencia["cantidad"] + str_replace(",",".",(float)$_REQUEST["unidades_".$indice]);
				}
				//Si el producto estaba dado de baja lógica, se le vuelve a dar de alta y se le introduce la cantidad especificada por el usuario
				else{
					$vector["fecha_baja"]=NULL;
					$vector["cantidad"] = str_replace(",",".",(float)$_REQUEST["unidades_".$indice]);
				}			
				//Se procede a modificar el registro existente con los nuevos datos			
				modificaBD("lineas_albaran_entrega",$vector,"id_producto=".$_REQUEST["idProducto_".$indice]." AND id_expedicion=".$id_expedicion);			
			}
			else{
				//Si la línea de albarán no existe, se procede a su inserción
				$vector["id_expedicion"]=$id_expedicion;
				$vector["id_producto"]=$_REQUEST["idProducto_".$indice];
				$vector["cantidad"] = str_replace(",",".",(float)$_REQUEST["unidades_".$indice]);
				insertaBD("lineas_albaran_entrega",$vector);

			}			
		}
		
		//Se aumentan o decrementan las correspondientes unidades en el stock de los productos
		$vector3["unidades"]=(float)$unidadesBD["unidades"] - str_replace(",",".",(float)$_REQUEST["unidades_".$indice]);
		modificaBD("productos",$vector3,"id_producto=".$_REQUEST["idProducto_".$indice]);
		
		die();		
		
	};
	
	
	// Borra lineas de producto
	case 'borrarLinea':{
	
		//Se procede al borrado virtual de la línea de albarán;
		$indice=$_REQUEST["indice"];
		$id=$_REQUEST["idProducto_".$indice];				
		$vector = array();
		$vector["fecha_baja"] = date("Y-m-d H:i:s");
		modificaBD("lineas_albaran_entrega",$vector,"id_expedicion=".$_REQUEST["id_expedicion"]." AND id_producto=".$id);		
		die();
		
	};
		
	
	// Inserta la observacion en el albaran
	case 'insertarObservaciones':{

		$obs = array();
		$exp = $_REQUEST["id_expedicion"];
		$obs["observaciones"] = $_REQUEST["obvs"];
		
		$expedicion_usada=consultaMultiple("albaran_entrega","fecha_baja IS NULL and id_expedicion=".$exp);

		if (count($expedicion_usada) > 0)
		{
			$obs["observaciones"] = $obs["observaciones"];
			modificaBD("albaran_entrega",$obs,"id_expedicion=".$exp);
		}
		
		die("OK");
		
	};
	
	
	// En caso de modificación se podrá llamar a esta función para modificar la fecha del albarán
	case 'modificarFechaAlbaran':{
		
		$modificacion=array();
		$modificacion["fecha"]=fechaToMysql($_REQUEST["fecha"]);
		modificaBD("albaran_entrega",$modificacion,"n_expedicion = ".$_REQUEST["expedicion"]." and fecha_baja IS NULL");
		
		die("OK");
	};
	
	
	// Borra el albarán cuando no tiene lineas introducidas, tanto de lotes como de lineas de producto
	case 'borrarAlbaranVacio': {
		
		$expedi = $_REQUEST["numeroExpedicionAlbaran"];		
		borraBD("albaran_entrega"," n_expedicion = ".$expedi." AND fecha_baja IS NULL");
		die("BORRADO");	
	};
	
	
/*###################################################################################################################################################################*/
/*################################################ FIN DE OPERACIONES DE EDICION DE REGISTROS DEL ALBARAN ###########################################################*/
/*###################################################################################################################################################################*/
	
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

/*#####################################################################################################################################################################*/
/*###################################################### OPERACIONES DE EDICION DE REGISTROS DE LOTES #################################################################*/
/*#####################################################################################################################################################################*/
	
	
	// Inserta los datos en la BD en las tablas (movimiento, lotes, productos, lineas_albaran_entrega)
	case 'InsertarLotes': {
		
		// Variables
		$numeroLineas = $_REQUEST["nLineas"];
		$numeroExpedicion = $_REQUEST["expAl"];
						
		$linea=array();
		// Obtiene el id_expedicion con el numero de expedicion
		$id_expedicion = consultaSimple("albaran_entrega","n_expedicion = ".$numeroExpedicion." and fecha_baja IS NULL");		
		
		// Recorro las lineas
		for ($i = 0; $i < $numeroLineas;$i++)
		{
		
			$vectorMovimiento = array(); // Movimiento a introducir 
			$restaLotes = array(); // Cantidad a restar en lotes
			$restaProductos = array(); // Unidades a restar en productos
			
			// Consultas necesarias
			$idMovimiento = maxid("movimientos","id_movimiento");
			$datosLote = consultaSimple("lotes","n_lote=".$_POST["nLote_".$i]);
			$datosProducto = consultaSimple("productos","id_producto=".$datosLote["id_producto"]);
			$existencia = consultaSimple("lineas_albaran_entrega","id_expedicion=".$id_expedicion["id_expedicion"]." and fecha_baja IS NULL and id_lote=".$datosLote["id_lote"]);
			
			// Comprobamos que no sobrepase las unidades existentes
			if((float)str_replace(",",".",$_POST["sacar_".$i]) > (float)$_POST["cantidad_".$i]){ die("sacar"); }
			
			// Si no sobrepasa la cantidad a sacar y que sea distinto de 0
			if((float)$datosLote["cantidad"] >= (float)str_replace(",",".",$_POST["sacar_".$i]) && (float)str_replace(",",".",$_POST["sacar_".$i]) != 0){
				
				// Comprobamos que no vuelva a introducir un lote que ya existe en el albaran actual
				if(count($existencia)>0){die("enAlbaran");}	
				
				// Modifica la cantidad en los lotes
				$restaLotes["cantidad"] = (float)$datosLote["cantidad"] - (float)str_replace(",",".",$_POST["sacar_".$i]);
				modificaBD("lotes",$restaLotes,"n_lote=".$_POST["nLote_".$i]);
				
				// Modifica las unidades del producto
				$restaProductos["unidades"] = (float)$datosProducto["unidades"] - (float)str_replace(",",".",$_POST["sacar_".$i]);			
				modificaBD("productos",$restaProductos,"id_producto=".$datosLote["id_producto"]);
				
				// Inserta el movimiento
				$vectorMovimiento["id_movimiento"] = $idMovimiento;
				$vectorMovimiento["id_producto"] = $datosLote["id_producto"];
				$vectorMovimiento["id_lote"] = $_POST["nLote_".$i];
				$vectorMovimiento["n_expedicion"] = $numeroExpedicion;
				$vectorMovimiento["movimiento"] = "Salida";
				$vectorMovimiento["unidades"] = (float)str_replace(",",".",$_POST["sacar_".$i]);
				$vectorMovimiento["fecha"] = date("Y-m-d H:i:s");
				insertaBD("movimientos", $vectorMovimiento);
				
				// Inserta la linea en "lineas_albaran_entrega"
				$linea["id_expedicion"]=$id_expedicion["id_expedicion"];
				$linea["id_producto"]=$datosLote["id_producto"];
				$linea["id_lote"]=$datosLote["id_lote"];
				$linea["cantidad"]= (float)str_replace(",",".",$_POST["sacar_".$i]);
				insertaBD("lineas_albaran_entrega",$linea);
			
			}
						
		}
			
		die("OK");	
	};

	
	// Funcion al modificar el campo de las unidades de un lote en el albaran	
	case 'modificarCantidadLote': {

		$lote = array(); // Lote
		$unidades = array(); // Unidades
		$movimientos = array(); // Movimientos
		$linea = array(); // lineas_albaran
		
		$indiceLote = $_REQUEST["indiceCantidad"];  // Id del lote a modificar
		$newUnd = $_REQUEST["newUnd"];  // Cantidad a poner
		$exp = $_REQUEST["expMod"]; // Expedicion
		
		// Consultas necesarias
		$datosLote = consultaSimple("lotes","n_lote=".$indiceLote);
		$datosProducto = consultaSimple("productos","id_producto=".$datosLote["id_producto"]);	
		$datosmovimiento = consultaSimple("movimientos"," id_lote=".$datosLote["id_lote"]." AND id_producto=".$datosLote["id_producto"]." AND n_expedicion = ".$exp);
		$albaran = consultaSimple("albaran_entrega","n_expedicion = ".$exp." AND fecha_baja IS NULL");
		$lineas_albaran = consultaSimple("lineas_albaran_entrega"," id_lote=".$datosLote["id_lote"]." AND id_producto=".$datosLote["id_producto"]." AND id_expedicion = ".$albaran["id_expedicion"]);
		
		// Comprobamos si las nueva unidad es mayor a la anterior 
		if ($newUnd > $datosmovimiento["unidades"])
		{
			
			// Comprueba si sobrepasa las unidades contenidas en el lote
			if((float)$newUnd > (float)$datosLote["cantidad"]){ die("sacar"); }	
			
			// Modifica las cantidad en lote
			$lote["cantidad"] = (float)$datosLote["cantidad"] - ((float)$newUnd - (float)$datosmovimiento["unidades"]); 
			modificaBD("lotes",$lote,"n_lote = ".$indiceLote);
			
			// Modifica las unidades del producto
			$unidades["unidades"] = (float)$datosProducto["unidades"] - ((float)$newUnd - (float)$datosmovimiento["unidades"]); 	
			modificaBD("productos",$unidades,"id_producto = ".$datosLote["id_producto"]);
			
			// Modifica el movimiento
			$movimientos["unidades"] = (float)$newUnd;
			modificaBD("movimientos",$movimientos," id_lote=".$datosLote["id_lote"]." AND id_producto=".$datosLote["id_producto"]." AND n_expedicion = ".$exp);
			
			// Modifica la linea
			$linea["cantidad"] = (float)$newUnd;
			modificaBD("lineas_albaran_entrega",$linea,"id_lote=".$datosLote["id_lote"]." AND id_producto=".$datosLote["id_producto"]." AND id_expedicion = ".$albaran["id_expedicion"]);
		
		// Comprobamos si las nueva unidad es menor a la anterior 			
		}else if (($newUnd < $datosmovimiento["unidades"]))
			{
				
				// Modifica la cantidad en lote
				$lote["cantidad"] = (float)$datosLote["cantidad"] + ((float)$datosmovimiento["unidades"] - (float)$newUnd); 
				modificaBD("lotes",$lote,"n_lote = ".$indiceLote);
				
				// Modifica las unidades del producto
				$unidades["unidades"] = (float)$datosProducto["unidades"] + ((float)$datosmovimiento["unidades"] - (float)$newUnd); 	
				modificaBD("productos",$unidades,"id_producto = ".$datosLote["id_producto"]);
				
				// Modifica el movimiento
				$movimientos["unidades"] = (float)$newUnd;
				modificaBD("movimientos",$movimientos," id_lote=".$datosLote["id_lote"]." AND id_producto=".$datosLote["id_producto"]." AND n_expedicion = ".$exp);
				
				// Modifica la linea
				$linea["cantidad"] = (float)$newUnd;
				modificaBD("lineas_albaran_entrega",$linea,"id_lote=".$datosLote["id_lote"]." AND id_producto=".$datosLote["id_producto"]." AND id_expedicion = ".$albaran["id_expedicion"]);
							
			}
			
		die("OK");
	};
	
	
	// Borra el lote seleccionado de la BD
	case 'borrarLote':{
				
		$lote = array(); // lote
		$producto = array(); // productos
		$linea = array(); // lineas
		
		// Variables
		$indiceLote = $_REQUEST["indiceLote"];
		$und = $_REQUEST["und"];
		$expedicion = $_REQUEST["expBr"];
		
		// Consultas necesarias
		$datosLote = consultaSimple("lotes","n_lote=".$indiceLote);
		$datosProducto = consultaSimple("productos","id_producto=".$datosLote["id_producto"]);
		$albaran = consultaSimple("albaran_entrega","n_expedicion = ".$expedicion." AND fecha_baja IS NULL");	
		
		// Operaciones
		
		// Modifica las unidades del lote, restaurando las unidades
		$lote["cantidad"] = (float)$datosLote["cantidad"] + (float)str_replace(",",".", $und); 
		modificaBD("lotes",$lote,"n_lote = ".$indiceLote);

		// Modifica las unidades del producto, sumando de nuevo la cantidad borrada
		$producto["unidades"] = (float)$datosProducto["unidades"] + (float)$und; 	
		modificaBD("productos",$producto,"id_producto = ".$datosLote["id_producto"]);
		
		// Elimina la linea de albarán de entrega
		borraBD("lineas_albaran_entrega"," id_lote = ".$datosLote["id_lote"]." AND id_producto=".$datosLote["id_producto"]." AND id_expedicion = ".$albaran["id_expedicion"]);
		
		// Elimina el movimiento
		borraBD("movimientos"," id_lote = ".$indiceLote." AND n_expedicion = ".$expedicion);
		
		die("OK");
	};
	
};

?>
